//导入工具包 require('node_modules里对应模块')
var gulp = require('gulp'), //本地安装gulp所用到的地方
    less = require('gulp-less'),//编译less
    cssCompre = require('gulp-minify-css'),//压缩css
    cssVer = require('gulp-make-css-url-version'),//css文件里引用url加版本号（根据引用文件的md5生产版本号）
    jsCompre = require('gulp-uglify');//压缩js

//定义一个testLess任务（自定义任务名称）
gulp.task('testLess', function () {
    //除了reset.less和test.less（**匹配src/less的0个或多个子文件夹）
    gulp.src(['!src/less/**/test.less','src/less/**/*.less' ]) //该任务针对的文件
        .pipe(less()) //该任务调用的模块
        .pipe(gulp.dest('src/css')); //将会在src/css下生成index.css
});
gulp.task('jsMin', function () {
    gulp.src(['src/js/**/*.js', '!src/js/**/test.js'])
        .pipe(jsCompre({
            mangle: true,//类型：Boolean 默认：true 是否修改变量名
            compress: true//类型：Boolean 默认：true 是否完全压缩
        }))
        .pipe(gulp.dest('dist/js'));
});

gulp.task('cssMin', function () {
    gulp.src(['src/css/**/*.css', '!src/css/**/test.css'])
        .pipe(cssVer()) //给css文件里引用文件加版本号（文件MD5）
        .pipe(cssCompre({
            advanced: false,//类型：Boolean 默认：true [是否开启高级优化（合并选择器等）]
            compatibility: 'ie7',//类型：String 默认：''or'*' [启用兼容模式； 'ie7'：IE7兼容模式，'ie8'：IE8兼容模式，'*'：IE9+兼容模式]
            keepBreaks: true//类型：Boolean 默认：false [是否保留换行]
        }))
        .pipe(gulp.dest('dist/css'));
});
//监听less文件的修改
gulp.watch('src/**/*.less', ['testLess']);
//监听css文件的修改
gulp.watch('src/**/*.css', ['cssMin']);
//监听js文件的修改
gulp.watch('src/**/*.js', ['jsMin']);
gulp.task('default',['testLess', 'jsMin','cssMin']); //定义默认任务
 
